home *** CD-ROM | disk | FTP | other *** search
-
-
-
- FFFFPPPPMMMMOOOODDDDEEEE((((1111)))) FFFFPPPPMMMMOOOODDDDEEEE((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- fpmode - run a command in specified floating point and/or memory mode
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ffffppppmmmmooooddddeeee precise|performance|smm|nsmm|spec|nonspec command [ arguments ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _f_p_m_o_d_e executes _c_o_m_m_a_n_d, forcing it to use the specified floating point
- exception and memory access mode. This is only meaningful on processors
- that support multiple modes. On these processors, the default mode is
- usually performance mode (also called imprecise exception mode) and non-
- sequential memory (nsmm) mode. On all other processors, the default is
- precise exception and sequential (smm) mode.
-
- The R8000 is the only processor which supports both a precise exception
- mode and a performance mode. All other processors support only precise
- exceptions, though automatic flushing of denormalized results to zero may
- be controlled through the setting of the FS bit in the FP control and
- status register by calling _s_e_t__f_p_c__c_s_r().
-
- In precise exception mode, all floating point exceptions/interrupts are
- reported on the instruction that caused the exception, so floating point
- signal handlers can clean up the FP state and continue execution. In
- performance mode, floating point interrupts are asynchronous and the
- reported program counter is meaningless. Precise mode is provided as a
- means of debugging processes and/or backward compatibility for programs
- that have knowledge of the FP state. It causes significant performance
- degradation.
-
- When a program is run in performance mode on an R8000, the floating point
- processor automatically flushes all denormalized results to zero
- regardless of the setting of the FS (flush denormalized results to zero)
- bit in the FP control and status register. This bit is turned on at
- _e_x_e_c() time. Turning it off (by calling _s_e_t__f_p_c__c_s_r()) will cause
- performance degradation. When the same program is run in precise mode,
- the FS bit is turned off at _e_x_e_c() time (for backward compatibility with
- older processors). Note that this means a given program may generate
- different results when run in performance and precise modes.
-
- Non-sequential memory access mode allows the processor to do floating
- point and integer memory operations out of order, thus possibly providing
- better performance. This is only supported on R8000 processors.
-
- Turning on speculative execution (spec) mode tells the kernel to ignore
- all memory access faults generated by the program. This mode is used by
- the compiler to provide better performance in some cases by allowing
- eager instruction scheduling. Note that this may also cause significantly
- worse performance if used indiscriminately and should be avoided when
- debugging since it masks potential problems.
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- FFFFPPPPMMMMOOOODDDDEEEE((((1111)))) FFFFPPPPMMMMOOOODDDDEEEE((((1111))))
-
-
-
- The floating point mode is inherited across _f_o_r_k() and _e_x_e_c() system
- calls. To modify both exception and memory modes, use fpmode twice; e.g.,
-
- fpmode precise fpmode smm command
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- syssgi(2), get_fpc_csr(3), set_fpc_csr(3).
-
- WWWWAAAARRRRNNNNIIIINNNNGGGGSSSS
- In the case of the following command
-
- fpmode precise command1; command2
-
- _f_p_m_o_d_e applies only to command1. The command
-
- fpmode precise (command1; command2)
-
- is syntactically incorrect.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-